﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/*
 实现一个泛型工厂方法，创建一个指定类型的实例。确保类型参数 T 必须有一个无参数的构造函数。
 练习要求：
     创建一个类 Person，包含一些属性（如 Name 和 Age），并在该类中定义一个无参数的构造函数。
     使用 Factory.CreateInstance<Person>() 创建一个 Person 实例，并设置其属性，然后打印这些属性值。
     尝试对不包含无参数构造函数的类使用 Factory.CreateInstance<T>() 方法，查看编译错误。
 */
namespace CS_BEGINNER_TO_PROFICIENT.STD.GenericitySTD
{
    public static class Factory
    {
        public static T CreateInstance<T>() where T : new()
        {
            return new T();
        }
    }

    public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }
}
